Pin Diagram Overview

The signals of the 8085 microprocessor can be grouped into the following categories:

Power supply and clock signals

Essential for the operation of the microprocessor

📍

Address bus

Used to specify memory locations

🔄

Data bus

Used for data transfer

🎛️

Control and status signals

Control the operation of the microprocessor

⚠️

Interrupts and externally initiated signals

Handle external events

📡

Serial I/O ports

For serial communication

1
2
3
4
5
6
7
8
9
10
20
19
18
17
16
15
14
13
12
11
21
22
23
24
25
26
27
28
29
30
40
39
38
37
36
35
34
33
32
31
A8
A9
A10
A11
A15
A14
A13
A12
X1
X2
RESET OUT
SOD
TRAP
RST 7.5
RST 6.5
RST 5.5
INTR
INTA
Vcc
HOLD
HLDA
WR
RD
IO/M
S1
S0
ALE
GND

Power Supply and Clock Signals

Vcc

+5-volt power supply

Vss

Ground reference

🔧

X1, X2

Crystal or R/C network or LC network connections to set the frequency of internal clock generator. The frequency is internally divided by two. Since the basic operating timing frequency is 3 MHz, a 6 MHz crystal is connected externally.

🕒

CLK (output)

Clock Output is used as the system clock for peripheral and devices interfaced with the microprocessor.

Address Bus and Data Bus

🔄AD0-AD7 (Multiplexed Address/Data Bus)

These are data bus and address multiplexed. Therefore, in addition to carrying data, it can also carry a lower order 8-bit address. Usually, the Latch is used to demultiplex these lines.


The lines deliver the lower order address bus A0-A7 in the first clock cycle of the opcode fetch operation. It serves as data bus D0-D7 in the IO/M read or write that follows. Data can be read or written by the CPU over these lines.

📍A8-A15 (Address Bus)

Address buses A8 through A15 are used to address memory locations.

A8-A15: Higher Order Address Bus
AD0-AD7: Multiplexed Lower Order Address/Data Bus
Total Address Space: 16 bits (64KB)

Instruction Set

The following five functional headings apply to the 8085 instruction set:

📤
Data Transfer Instructions

Instructions for moving (copying) data between registers or between memory locations and registers. Not a single data transfer transaction modifies the contents of the source register. As a result, data transport is a copying process.

🧮
Arithmetic Instructions

Contains instructions for performing operations such as addition, subtraction, increment, and decrement. Following the execution of an instruction in this group, the flag conditions are changed.

🔣
Logical Instructions

This category includes instructions that carry out logical operations such as AND, OR, EXCLUSIVE-OR, complement, compare, and rotate. Following the execution of an instruction in this group, the flag conditions are changed.

🔀
Branching Instructions

This category includes instructions used to move the program's control from one memory region to another.

⚙️
Machine Control Instructions

Contains instructions for stopping program execution and for handling interruptions.

📤Data Transfer Instructions

These instructions transfer information from memory to registers or between registers and memory.

These instructions replicate information from one location to another.

The contents of the source are not altered throughout the copying process.

MOV A, B ; Move data from register B to accumulator
MVI C, 05H ; Move immediate data 05H to register C
LDA 2000H ; Load accumulator with data from memory location 2000H
STA 3000H ; Store accumulator data to memory location 3000H

🧮Arithmetic Instructions

These instructions perform arithmetic operations such as addition, subtraction, increment, and decrement.

ADD B ; Add register B to accumulator
ADI 05H ; Add immediate data 05H to accumulator
SUB C ; Subtract register C from accumulator
INR D ; Increment register D by 1
DCR E ; Decrement register E by 1

🔣Logical Instructions

These instructions perform various logical operations with the contents of the accumulator.

ANA B ; AND register B with accumulator
ORA C ; OR register C with accumulator
XRA D ; EXCLUSIVE-OR register D with accumulator
CMA ; Complement accumulator
CMP E ; Compare register E with accumulator

🔀Branching Instructions

This group of instructions alters the sequence of program execution either conditionally or unconditionally.

JMP 2050H ; Jump to memory location 2050H
JZ 2050H ; Jump to 2050H if zero flag is set
JNZ 2050H ; Jump to 2050H if zero flag is not set
CALL 2050H ; Call subroutine at 2050H
RET ; Return from subroutine

⚙️Machine Control Instructions

These instructions control machine functions such as Halt, Interrupt, or do nothing.

HLT ; Halt the microprocessor
NOP ; No operation
EI ; Enable interrupts
DI ; Disable interrupts
SIM ; Set interrupt mask
RIM ; Read interrupt mask

📋SIM and RIM Instructions

SIM (Set Interrupt Mask): This instruction is used to set the interrupt mask and to output data through SOD line.

RIM (Read Interrupt Mask): This instruction is used to read the interrupt mask and to input data through SID line.

SIM Instruction Format
SOD
SDO
I7.5
I6.5
I5.5
IE
M7.5
M6.5
M5.5
RIM Instruction Format
SID
IID
I7.5
I6.5
I5.5
IE
M7.5
M6.5
M5.5

Addressing Modes

A program's instructions must all function with data. The process of defining the data that an instruction is to operate on is known as addressing. The 8085 is equipped with five distinct addressing types:

Immediate Addressing

The data is given in the instruction itself.

📍
Direct Addressing

The instruction contains the address of the data.

📝
Register Addressing

The instruction identifies the register that contains the data.

🔄
Register Indirect Addressing

The address of the data is available in a register.

🔍
Implied Addressing

The data to be operated is specified in the instruction itself.

Immediate Addressing

The data is given in the instruction itself when using immediate addressing mode. The information will be included in the program's instructions.

MVI B, 3EH ; Move the data 3EH to the B register
LXI SP, 2700H ; Load the stack pointer with 2700H
ADI 05H ; Add immediate data 05H to accumulator

📍Direct Addressing

The instruction contains the address of the data in direct addressing mode. It will be stored in memory. Data and program instructions can be kept in separate memory locations when using this addressing technique.

LDA 1050H ; Load the data into the accumulator at memory address 1050H
STA 2000H ; Store the accumulator data to memory address 2000H
SHLD 3000H ; Store H and L registers to memory address 3000H

📝Register Addressing

When using register addressing mode, the instruction identifies the register that contains the data.

SPHL ; Copy H and L registers to stack pointer
ADD C ; Add register C to accumulator
MOV A, B ; Transfer the contents of B register to A register

🔄Register Indirect Addressing

In this style of instruction, the address of the data is available in a register named after the instruction. In this case, the address will be in the register pair while the data will be in memory.

MOV A, M ; Move the memory data addressed by the H L pair to register A
LDAX B ; Load accumulator with data from memory address in B-C pair
STAX D ; Store accumulator data to memory address in D-E pair

🔍Implied Addressing

When using implied addressing mode, the data to be operated is specified right in the instruction itself.

CMA ; Complement the accumulator's content
RAL ; Rotate accumulator left through carry
RAR ; Rotate accumulator right through carry